Conversation
자바 문법이 어색하여 구글과 지피티를 열심히 참고하였습니다... MVC 형식에 최대한 적합하게끔 설게해보았습니당
자바가 친숙하지 않아 구글링과 GPT를 많이 참고하였습니다... 최대한 MVC형식에 맞게끔 작성해보았습니다.
| } | ||
| } | ||
| private void validateRange(List<Integer> numbers){ | ||
| for (int winNumber = 0;winNumber<numbers.size();winNumber++){ |
There was a problem hiding this comment.
여기서 number.size 같은 것들은 상수로 사용하면 좋을 것 같습니다
| import java.util.List; | ||
| import camp.nextstep.edu.missionutils.Randoms; | ||
|
|
||
| public class LottoNumbers { |
There was a problem hiding this comment.
lottoNumbers이란 클래스 명은 lotto의 numbers 필드와 혼동할 수 있으므로 lottoUtils 같은 걸로 변경하면 좋아보입니다
| public int calcLottoCount(){ | ||
| return coin / lottoPrice; | ||
| } | ||
| private void validateCoin(int coin){ |
There was a problem hiding this comment.
다른 에러가 아닌 같은 IllegalArgumentException 을 던지므로 한 로직에서 수행해도 될 것 같아요
| validateNatural(coin); | ||
| validateDivisible(coin); | ||
| } | ||
| private static int validateNumber(String coin) throws IllegalArgumentException{ |
There was a problem hiding this comment.
컨트롤러에서 이미 예외 핸들링을 하므로 예외 핸들링이 아닌 예외 던지기만 해도 될 것 같아요.
| this.lotto = lotto; | ||
| this.bonus = bonus; | ||
| } | ||
| public Ranking match(Lotto playername){ |
There was a problem hiding this comment.
생성자의 파라미터 lotto의 이름을 로또가 아닌 winnigNumbers정도로 하면 좋을 것 같아요 winResult는 당첨번호들을 가진 객체이고 player 마다 로또를 하나씩 갖는 게 아닌 여러개를 가지므로 playerName을 lotto로 변경하면 좋을 것 같아요.
네이밍할 때 playername은 혼동을 줄 수 있으므로 카멜스타일로 playerName으로 바꾸면 좋을 것 같아요
| private static final String NOT_NUMBER_SIZE = "[ERROR] 당첨 번호는 6개 입력 가능합니다."; | ||
| private static final String NOT_NUMBER_OVERLAP = "[ERROR] 중복된 숫자를 입력하셨습니다."; | ||
| private static final String INPUT_TYPE_ERROR = "[ERROR] 숫자만 입력해 주세요."; | ||
| private static final int LOTTO_MIN_AMOUNT = 1000; |
| return winningNumberList; | ||
| } | ||
|
|
||
| private static int conventToInt(String inputNumber) { |
There was a problem hiding this comment.
try catch 구문에서 예외처리 할 때 Exception.printStackTrace()를 호출하셨는데 이대로 실행하면 에러 메세지가 구체적으로 뜨는건가요?(저는 잘 모르겠어서 질문 드려요..) 에러 원인이 무엇인지 구체적으로 뜨면 좋을 것 같아서 여쭤봅니다!!
| public int getWinAmount() { | ||
| return winAmount; | ||
| } | ||
| private boolean counter(int matchCount){ |
There was a problem hiding this comment.
counter 함수는 일치한 볼을 세는 함수니까 함수의 기능을 눈에 확 들어오는 이름으로 변경하면 더 좋을 것 같아요. 예를 들어 getMatchCounter / isMatchCounter 를 사용해도 좋을 것 같습니다
| public static List<Integer> setRandomNumbers(){ | ||
| lottoNumberList = Randoms.pickUniqueNumbersInRange(minLottoNumber,maxLottoNumber,cntLottoNumber); | ||
| List<Integer> lottoTicketNumberList = new ArrayList<>(lottoNumberList); | ||
| Collections.sort(lottoTicketNumberList); |
There was a problem hiding this comment.
저는 리스트를 스트림으로 변환하고 sorted 기능을 사용했는데, 그냥 리스트에서 sort를 호출해서 사용하는게 더 직관적이고 쉬운 것 같아서 좋은 것 같습니다! 참고하겠습니다~

Java 언어가 익숙치 않아 구글링과 GPT를 마구마구 참고했습니다...
가급적 MVC 형식에 맞춘 연습을 진행했습니다.